package com.kanshu.ksgb.fastread.doudou.module.bookcity.retrofit;

import com.kanshu.ksgb.fastread.doudou.common.business.commonbean.BookInfo;
import com.kanshu.ksgb.fastread.doudou.common.net.bean.BaseResult;
import com.kanshu.ksgb.fastread.doudou.common.net.bean.PageRequestParams;
import com.kanshu.ksgb.fastread.doudou.common.net.retrofit.FormObjConverterFactory;
import com.kanshu.ksgb.fastread.doudou.common.net.retrofit.Obj;
import com.kanshu.ksgb.fastread.doudou.module.book.bean.BannerItem;
import com.kanshu.ksgb.fastread.doudou.module.book.bean.CategoryBean;
import com.kanshu.ksgb.fastread.doudou.module.book.retrofit.requestparams.BookListReqParams;
import com.kanshu.ksgb.fastread.doudou.module.book.retrofit.requestparams.SearchRequestParams;
import com.kanshu.ksgb.fastread.doudou.module.bookcity.bean.BookDetailsBean;
import com.kanshu.ksgb.fastread.doudou.module.bookcity.bean.BookSet;
import com.kanshu.ksgb.fastread.doudou.module.bookcity.bean.SelectedBannerBean;
import com.kanshu.ksgb.fastread.doudou.module.bookcity.bean.SelectedBean;
import com.kanshu.ksgb.fastread.doudou.module.bookcity.bean.SelectedCategoryBean;

import java.util.List;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Query;

/**
 * Created by wcy on 18/5/17.
 */

public interface BookCityService {

    //banner
    @GET("app/appbook/huoquLunbotu")
    Observable<BaseResult<List<SelectedBannerBean>>> getSelectedBanners(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SelectedRequestParams params);
    // 精选
    @GET("app/appbook/shuchengyeJingxuan")
    Observable<BaseResult<List<SelectedBean>>> getSelectedInfos(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj PageRequestParams params);
    // 男频
    @GET("app/appbook/shuchengyenanpin")
    Observable<BaseResult<List<SelectedBean>>> getMaleSelectedInfos();
    // 女频
    @GET("app/appbook/shuchengyenvpin")
    Observable<BaseResult<List<SelectedBean>>> getFemaleSelectedInfos();
    // 万人之选接口
    @GET("app/appbook/huoquwanrenzhixuanbypage")
    Observable<BaseResult<List<SelectedBean>>> getWanRenZhiXuanSelectedInfos(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj PageRequestParams params);
    // 单个推荐位请求接口
    @GET("app/appbook/huoqudanbenshujibypage")
    Observable<BaseResult<List<SelectedBean>>> getSelectedItem(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SelectedRequestParams params);
    // 男频换分类接口
    @GET("app/appbook/huoqunanpinhuanfenleibypage")
    Observable<BaseResult<List<SelectedBean>>> getMaleSwitchCategory();
    // 女频换分类接口
    @GET("app/appbook/huoqunvpinhuanfenleibypage")
    Observable<BaseResult<List<SelectedBean>>> getFemaleSwitchCategory();
    // 男频|女频|精选 热门标签 分页接口
    @GET("app/appbook/huoquremenbiaoqianbypage")
    Observable<BaseResult<List<SelectedBean>>> getHotLabel(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SelectedRequestParams params);
    // 男频 人气专区 分页接口
    @GET("app/appbook/huoqunanpinrenqizhuanqubypage")
    Observable<BaseResult<List<SelectedBean>>> getMaleRenqi(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SelectedRequestParams params);
    // 女频 人气专区 分页接口
    @GET("app/appbook/huoqunvpinrenqizhuanqubypage")
    Observable<BaseResult<List<SelectedBean>>> getFemaleRenqi(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SelectedRequestParams params);
    // 获取所有的分类信息
    @GET("app/appbook/huoqujingxuanfenlei")
    Observable<BaseResult<List<SelectedCategoryBean>>> getAllCategories(@Query("site") String site);
    // 获取该分类下的子分类信息
    @GET("app/appbook/huoqujingxuanfenleitab")
    Observable<BaseResult<CategoryBean>> getSubCategories(@Query("category_id_1") String category_id_1);
    // 获取该子分类下的书籍信息
    @GET("app/appbook/huoqufenleiliebiao")
    Observable<BaseResult<List<BookInfo>>> getSubCategoryBooks(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SelectedCategoryReq params);
    // 完本-经典完结(男/女)
    @GET("app/appbook/huoqujingdianwanjiebypage")
    Observable<BaseResult<List<SelectedBean>>> getMaleOrFemaleSelectFinished(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj PageRequestParams params, @Query("site") String site);
    // 专题全部
    @GET("app/appbook/huoquduobenshujibypage")
    Observable<BaseResult<List<SelectedBean>>> getTopics(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SelectedRequestParams params);
    // 专题活动banner
    @GET("app/apphuodong/lists")
    Observable<BaseResult<List<BannerItem>>> getTopicsBanner(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj TopicBannerParams params);
    // 终极诱惑 和 新书 更多入口
    @GET("app/appbook/huoqudanbenshujimore")
    Observable<BaseResult<List<BookInfo>>> getNewBookOrAttractBooks(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj PageRequestParams params);
    // 书单列表
    @GET("app/appduobenshujipeizhi/one")
    Observable<BaseResult<BookSet>> getBookSet(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj BookSetRequestParams params);
    // 搜索
    @GET("/app/book/lists")
    Observable<BaseResult<List<BookInfo>>> doSearch(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj SearchRequestParams params);
    // 书籍详情
    @GET("app/book/details")
    Observable<BaseResult<BookDetailsBean>> getBookDetails(@Query("book_id") String book_id);
    // 排行榜数据列表
    @GET("app/book/xiaoshuopaihang")
    Observable<BaseResult<List<BookInfo>>> getRankingList(@Query(value = FormObjConverterFactory.PLACEHOLDER) @Obj BookListReqParams params);

}
